MAPS

1854 Broad Street cholera outbreak

Dot Map

Illustration from Punch (1852).

Illustration from Punch (1852).

On proceeding to the spot,
I found that nearly all the deaths had taken place within a short distance of the [Broad Street] pump…
— John Snow, letter to the editor of the Medical Times and Gazette


John Snow was an English physician and is considered one of the founders of modern epidemiology. His work in tracing the source of a 1854 cholera outbreak in Soho, London, led to his creation of a dot map to illustrate the cluster of cholera cases around the public water pump on Broad Street. His studies of the pattern of the disease were persuaded the local council to disable the well pump by removing its handle to prevent further use. He also used statistics to illustrate the connection between the quality of the water source and cholera cases. He showed that homes supplied by pumps taking water from sewage-polluted sections had a cholera rate significantly higher than those supplied by sources from the upriver. His study of its causes and hypothesis that germ-contaminated water was the source of cholera, rather than particles in the air, influenced public health and the construction of improved sanitation facilities.

Ingest

deaths

df_deaths <- read.csv("archetypes/snow-cholera/deaths.csv", header = TRUE, stringsAsFactors = FALSE, fileEncoding = "utf-8")
head(df_deaths, n = 10)

Ingest

pumps

df_pumps <- read.csv("archetypes/snow-cholera/pumps.csv", header = TRUE, stringsAsFactors = FALSE, fileEncoding = "utf-8")
head(df_pumps, n = 10)

Ingest

points of interest

df_poi <- read.csv("archetypes/snow-cholera/poi.csv", header = TRUE, stringsAsFactors = FALSE, fileEncoding = "utf-8")
head(df_poi, n = 10)

Base maps

streets and deaths (geolocated from original)

streets <- st_read("archetypes/snow-cholera/streets.geojson")
## Reading layer `streets' from data source 
##   `C:\Users\jaybe\Desktop\kamino-public\kamino-source\sources\10-maps\3-point\8-dot\archetypes\snow-cholera\streets.geojson' 
##   using driver `GeoJSON'
## Simple feature collection with 161 features and 1 field
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: -0.1438059 ymin: 51.50929 xmax: -0.1308036 ymax: 51.51675
## Geodetic CRS:  WGS 84
dwellings <- st_read("archetypes/snow-cholera/dwellings.geojson")
## Reading layer `dwellings' from data source 
##   `C:\Users\jaybe\Desktop\kamino-public\kamino-source\sources\10-maps\3-point\8-dot\archetypes\snow-cholera\dwellings.geojson' 
##   using driver `GeoJSON'
## Simple feature collection with 179 features and 1 field
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: -0.1400864 ymin: 51.51181 xmax: -0.1328512 ymax: 51.51588
## Geodetic CRS:  WGS 84

View

streets, deaths, and pumps

theme_opts <- theme(
  text = element_text(family = "inconsolata"), 
  plot.title = element_text(color = "black", size = 14, face = "bold", family = "inconsolata"),
  plot.subtitle = element_text(color = "black", size = 12, family = "inconsolata"),
  plot.caption = element_text(color = "#555555", size = 8, family = "inconsolata"),
  plot.background = element_blank(),
  panel.grid = element_blank(),
  panel.grid.major = element_blank(),
  panel.grid.minor = element_blank(),
  panel.background=element_rect(fill="white", colour="white"),
  panel.border = element_blank(),
  axis.text = element_blank(),
  axis.line = element_blank(),
  axis.ticks = element_blank(),
  axis.title = element_blank(),
  legend.position = "none",
  legend.title = element_blank()
)

v1 <- ggplot() +
  geom_sf(data = streets, fill="#f0f0f0", color="#111111", size = 0.5) +
  geom_sf(data = dwellings, fill="#111111", color="#111111", size = 0.5) +
  geom_point( data = df_deaths, aes(x=xcoord, y=ycoord, size = Count), shape = 21, color = "#E53935", fill = "#E53935", alpha = 0.8) +
  geom_point( data = df_pumps, aes(x=xcoord, y=ycoord), shape = 21, size = 4, color = "#03A9F4", fill = "#03A9F4") +
  geom_text_repel(data = df_poi, aes(x = xcoord, y = ycoord, label = label), 
                  size = 4, hjust = 0.5, vjust = 0.5, family = "inconsolata", fontface = "bold",
                  seed = 42, force = 5, force_pull = 0, box.padding = 0.75, min.segment.length = 0, direction = "y", 
                  color = "black", bg.color = "white", bg.r = 0.15) +
  scale_size_continuous(range = c(2, 10)) +
  labs(x=NULL,
       y=NULL,
       title = "1854 Broad Street cholera outbreak", 
       subtitle="replica of original by John Snow") +
  theme_bw() +
  theme_opts

girafe(ggobj = v1, width_svg = 16, height_svg = 15,
       options = list(opts_sizing(rescale = TRUE, width = 0.8)))

References

Citations and data sources

Map of the book "On the Mode of Communication of Cholera" by John Snow, originally published in 1854 by C.F. Cheffins, Lith, Southhampton Buildings, London, England.